<?php
/**
 * 商品类型类
 */
namespace app\admin\controller;
use app\admin\controller\Common;
class Type extends Common{

	/**
	 * 展示商品类型列表页
	 */
	public function lst(){

		//分配模版标头信息变量
		$this->setPageTitle("商品类型列表","添加商品类型",url('addShow'));

		//获取类型
		$types = db('type')->order('tid desc')->select();

		//分配变量
		$this->assign('types',$types);

		//展示视图
		return $this->fetch();
	}

	/**
	 * 展示商品类型添加页
	 */
	public function addShow(){

		//分配模版标头信息变量
		$this->setPageTitle("添加商品类型","商品类型列表",url('lst'));

		//展示视图
		return $this->fetch('add');
	}

	/**
	 * 添加商品类型
	 */
	public function add(){

		//安全处理 
		if( !request()->isPost() ){

			$this->error('您访问的页面不存在！');

		}

		//收集数据
		$data['type_name'] = input('post.typeName');

		//字段验证
		if( empty($data['type_name']) ){

			$this->error('请填写类型名！');

		}

		//判断类型名是否存在
		$db = db('type');
		if( $db->getbyTypeName($data['type_name']) ){

			$this->error('该类型名已经存在，请更换类型名！');

		}

		//添加类型
		if( $db->strict(true)->insert($data) ){

			//获取最后执行的sql语句
			$sql = $db->getLastSql();

			//添加管理员日志
			adminLog( session('id'), '添加了商品类型：'.$data['type_name'], $sql );

			$this->success('添加成功！',url('lst'));

		}else{

			$this->error('添加失败！');
			
		}

	}

	/**
	 * 展示商品类型添加页
	 */
	public function editShow(){

		//分配模版标头信息变量
		$this->setPageTitle("添加商品类型","商品类型列表",url('lst'));

		//获取类型
		$id = input('id')+0;
		$type = db('type')->find($id);

		//分配变量
		$this->assign('type',$type);

		//展示视图
		return $this->fetch('edit');
	}

	/**
	 * 添加商品类型
	 */
	public function edit(){

		//安全处理 
		if( !request()->isPost() ){

			$this->error('您访问的页面不存在！');

		}

		//收集数据
		$data['type_name'] = input('typeName');
		$data['tid'] = input('id')+0;

		//字段验证
		if( empty($data['type_name']) ){

			$this->error('请填写类型名！');

		}

		//判断用户是否修改了类型名
		$db = db('type');
		$type = $db->find( $data['tid'] );
		if( $type['type_name'] == $data['type_name'] ){

			$this->error('类型名没有变化，无需更新！');

		}

		//判断类型名是否存在
		if( $db->getbyTypeName($data['type_name']) ){

			$this->error('该类型名已经存在，请更换类型名！');

		}
		
		//添加类型
		if( false !== $db->strict(true)->update($data) ){

			//获取最后执行的sql语句
			$sql = $db->getLastSql();

			//添加管理员日志
			adminLog( session('id'), '修改了商品类型：'.$data['type_name'], $sql );

			$this->success('更改成功！',url('lst'));

		}else{

			$this->error('更改失败！');
			
		}

	}

	/**
	 * 异步删除商品类型
	 */
	public function del(){

		//安全处理 
		if( !request()->isAjax() ){

			$this->error('您访问的页面不存在！');

		}

		//接收信息
		$id = input('id')+0;
		$name = input('name');

		//判断类型下是否存在属性
		if( db('attrs')->where('tid','=',$id)->find() ){

			echo json_encode(['status'=>false,'msg'=>'该类型下还存在属性，请先将其所有属性删除后再来删除！']);
			die;
		}

		//删除类型
		$db = db('type');
		if( $db->delete($id) ){

			//获取最后执行的sql语句
			$sql = $db->getLastSql();

			//添加管理员日志
			adminLog( session('id'), '删除了商品类型：'.$name, $sql );

			echo json_encode(['status'=>true,'msg'=>'删除成功！']);
		}else{

			echo json_encode(['status'=>false,'msg'=>'删除失败！']);
		}

	}


}